import pandas as pd
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 读取Excel文件
df = pd.read_excel('FhjlViewDD.xlsx')
df['创建时间'] = pd.to_datetime(df['创建时间'])

# a. 统计6月份每日矿粉货运量的日趋势，并画柱状图
daily_mineral = df[df['货品'] == '矿粉'].groupby(df['创建时间'].dt.to_period('D'))['净重'].sum()
plt.figure(figsize=(10, 6))
daily_mineral.plot(kind='bar')
plt.title('6月份每日矿粉货运量')
plt.xlabel('日期')
plt.ylabel('货运量(吨)')
plt.savefig('矿粉货运量日趋势.png')
plt.close()

# b. 统计6月份每日水泥货运量的日趋势图，并画柱状图
daily_cement = df[df['货品'] == '水泥'].groupby('创建时间')['净重'].sum()
plt.figure(figsize=(10, 6))
daily_cement.plot(kind='bar')
plt.title('6月份每日水泥货运量')
plt.xlabel('日期')
plt.ylabel('货运量(吨)')
plt.savefig('水泥货运量日趋势.png')
plt.close()

# c. 统计每个客户的6月份的货运需求量，并按大到小排序
customer_demand = df.groupby('客户')['净重'].sum().sort_values(ascending=False)
customer_demand.to_csv('客户货运需求排名.csv')

# d. 统计6月份各发货地的发货总量，并绘制饼图
location_total = df.groupby('发货地')['净重'].sum()
plt.figure(figsize=(8, 8))
location_total.plot(kind='pie', autopct='%1.1f%%')
plt.title('各发货地发货量占比')
plt.savefig('发货地发货量占比.png')
plt.close()

# e. 统计6月份各车牌号的总货运量，并按大至小排序
plate_total = df.groupby('车辆')['净重'].sum().sort_values(ascending=False)
plate_total.to_csv('车牌号货运量排名.csv')